package unq.equipos.dom.partidos;

import unq.equipos.dom.Equipo;
/**
 * 
 * Utilizamos como referencia el primer partido,, es decir equipo uno es el equipo uno del primer partido
 *   
 * @author sandwitches
 *
 */
public class PartidoCopa extends Partido {
	private PartidoSimple partidoUno,
						partidoDos;
	private int golesPenalEquipoUno,
				golesPenalEquipoDos;
	
	
	public PartidoCopa() {
	}
	

	public Equipo equipoGanador() {
		int golesEquipoUno = partidoUno.getGolesEquipoLocal() + partidoDos.getGolesEquipoVisitante();
		int golesEquipoDos = partidoDos.getGolesEquipoLocal() + partidoUno.getGolesEquipoVisitante();
		if( golesEquipoUno == golesEquipoDos )
		  	return getGolesPenalEquipoUno() > getGolesPenalEquipoDos() ? partidoUno.getEquipoUno() : partidoUno.getEquipoDos();
		return  golesEquipoUno > golesEquipoDos ? partidoUno.getEquipoUno() : partidoUno.getEquipoDos();
	}
	
	
	//setters & getters
	public void setPartidoUno(PartidoSimple partidoUno) {
		this.partidoUno = partidoUno;
		this.setEquipoUno(partidoUno.getEquipoUno());
		this.setEquipoDos(partidoUno.getEquipoDos());
	}
	
	public void setPartidoDos(PartidoSimple partidoDos) {
		this.partidoDos = partidoDos;
	}
	
	public PartidoSimple getPartidoUno() {
		return partidoUno;
	}
	
	public PartidoSimple getPartidoDos() {
		return partidoDos;
	}

	public void setGolesPenalEquipoUno(int goles) {
		this.golesPenalEquipoUno = goles;
	}
	public void setGolesPenalEquipoDos(int goles) {
		this.golesPenalEquipoDos = goles;
	}
	
	public int getGolesPenalEquipoUno() {
		return golesPenalEquipoUno;
	}
	
	public int getGolesPenalEquipoDos() {
		return golesPenalEquipoDos;
	}
	
	/**
	 * Este metodo no posee cuerpo, debido a que su finalidad solo radica en que hibernate lo requiere.
	 * Esto se hace para ganar performance
	 */
	public void setGanador(Equipo equipo){}
	
	
	public Equipo getGanador(){
		return equipoGanador();
	}
}
